// 引入 moment 库，用于日期和时间操作
const moment = require('moment')

// 准备插入数据到 history_results
const insertHistoryResults = (pool, allValues, table_name) => {
  // 创建一个 Promise
  return new Promise((resolve, reject) => {
    const insertPromises = allValues.map((item) => {
      const { time, number } = item

      // 插入到 history_results 表，并返回插入的结果
      return pool.query(`INSERT INTO ${table_name} (time, number) VALUES (?, ?)`, [time, number]).then(([result]) => {
        // 返回带有 id 的记录
        return { time, number, id: result.insertId }
      })
    })

    // 等待所有插入操作完成
    Promise.all(insertPromises)
      .then((results) => {
        // 按时间排序
        resolve(
          results.sort((a, b) => {
            return moment(a.time).diff(moment(b.time))
          })
        )
      })
      .catch((err) => {
        console.error('插入数据时出错:', err)
        reject(err) // 如果有错误发生，调用 reject
      })
  })
}

module.exports = { insertHistoryResults }
